#include "Brodocast.h"

#include <iostream>
using namespace std;

Brodocast::Brodocast()
{
}

Brodocast *Brodocast::criaBrodocast(ConfiguracaoBrodocast *config)
{
    Brodocast *novoBrodocast = 0x0;

    novoBrodocast = new Brodocast;

    return novoBrodocast;
}

void Brodocast::buscaGrupo(list<Grupo *> &lista)
{

    Grupo *grupo = new Grupo("A");
    grupo->novoNodo(new Nodo("NAA"));
    grupo->novoNodo(new Nodo("NAB"));
    grupo->novoNodo(new Nodo("NAC"));
    grupo->novoNodo(new Nodo("NAD"));
    lista.push_back(grupo);

    grupo = new Grupo("B");
    grupo->novoNodo(new Nodo("NBA"));
    grupo->novoNodo(new Nodo("NBB"));
    grupo->novoNodo(new Nodo("NBC"));
    grupo->novoNodo(new Nodo("NBD"));
    lista.push_back(grupo);

    grupo = new Grupo("C");
    grupo->novoNodo(new Nodo("NCA"));
    grupo->novoNodo(new Nodo("NCB"));
    grupo->novoNodo(new Nodo("NCC"));
    grupo->novoNodo(new Nodo("NCD"));
    lista.push_back(grupo);
}

Brodocast *Brodocast::entrar(Grupo *grupo)
{
    Brodocast *novoBrodo = new Brodocast;
    novoBrodo->m_grupo = grupo;

    return novoBrodo;
}

void Brodocast::enviar(char *msg)
{
    if(m_grupo != 0x0)
    {
        Nodo* nodo;
        list<Nodo*>::iterator in;
        for(in = m_grupo->inicioNodos() ; in != m_grupo->fimNodos() ; in++)
        {
            nodo = (*in);

            cout << "Enviando msg \"" << msg << "\" para nodo " << nodo->nome() << endl;
        }
    }
}

string Brodocast::recebe()
{
}
